package cn.xinfei.xdecision.common.utils.constant.enginex;

/**
 * 决策流校验提示信息定义
 * Created by maying on 2023/04/25.
 **/
public class DecisionFlowCheckMessageConst {

    /**
     * 基本校验规则
     */
    public static final String BASE_RULE_NODE_LIST_IS_EMPTY = "节点列表为空";
    public static final String BASE_RULE_NODE_JSON_IS_NULL = "节点属性为空";
    public static final String BASE_RULE_START_END_NODE_MISSING = "开始或结束节点缺失";
    public static final String BASE_RULE_CONTAINS_ISOLATED_NODE = "包含孤立节点";
    public static final String BASE_RULE_DECISION_FLOW_CYCLIC_DEPENDENCY = "决策流存在循环依赖";


    /**
     * 节点属性完整性校验规则
     */
    public static final String INTEGRITY_CHECK_RULE_ISPARTNERTRAINING_NULL = "规则库串行模式下，需配置是否陪跑标记";
    public static final String INTEGRITY_CHECK_RULE_COMPONENT_LIST_NULL = "策略节点未选择依赖组件";
    public static final String INTEGRITY_CHECK_RULE_TERMINATION_INFO_NULL = "策略节点终止条件未配置";
    public static final String INTEGRITY_CHECK_RULE_CONDITIONS_MISSING = "表达式配置不完整";
    public static final String INTEGRITY_CHECK_RULE_DECISION_NODE_RESULT_MISSING = "决策选项表达式输出结果缺失";
    public static final String INTEGRITY_CHECK_RULE_BRANCH_NODE_SIZE_ERROR = "分支节点分支条件缺失或不满足最少条件限制";


    /**
     * 决策流分支配置校验规则
     */
    public static final String FLOW_CHECK_BRANCH_INCOMPLETE = "分支配置不完整";
    public static final String FLOW_CHECK_RULE_BRANCH_NODE_HAVE_STRATEGY_NODE = "分支节点至结束节点之间至少包含一个策略节点";
    public static final String FLOW_CHECK_RULE_PARALLEL_AGGREGATION_1 = "并行节点至结束节点之间必须包含聚合节点";
    public static final String FLOW_CHECK_RULE_PARALLEL_AGGREGATION_2 = "并行与聚合节点之前不能包含其他分支节点";
    public static final String FLOW_CHECK_RULE_PARALLEL_AGGREGATION_3 = "聚合节点之前必须包含并行节点";
    public static final String FLOW_CHECK_RULE_CHAMPION_CHALLENGE_1 = "挑战者分支不能包含冠军挑战节点";
    public static final String FLOW_CHECK_RULE_CREDIT_REPORT_1 = "依赖人行变量节点前必须包含人行征信节点";
    public static final String FLOW_CHECK_RULE_CHAMPION_CHALLENGE_2 = "挑战者分支不能包含人行征信节点";

    /**
     * 陪跑节点
     */
    public static final String ACTION_INCOMPLETE = "陪跑节点信息不完整";
}
